﻿using System;

namespace HalconDotNet
{
	// Token: 0x0200007C RID: 124
	public class HData
	{
		// Token: 0x06001DA2 RID: 7586 RVA: 0x000B4AE2 File Offset: 0x000B2CE2
		internal HData()
		{
			this.tuple = new HTuple();
		}

		// Token: 0x06001DA3 RID: 7587 RVA: 0x000B4AF5 File Offset: 0x000B2CF5
		internal HData(HTuple t)
		{
			this.tuple = t;
		}

		// Token: 0x06001DA4 RID: 7588 RVA: 0x000B4B04 File Offset: 0x000B2D04
		internal HData(HData data)
		{
			this.tuple = data.tuple;
		}

		// Token: 0x06001DA5 RID: 7589 RVA: 0x000B4B18 File Offset: 0x000B2D18
		internal static HTuple ConcatArray(HData[] data)
		{
			HTuple htuple = new HTuple();
			for (int i = 0; i < data.Length; i++)
			{
				htuple = htuple.TupleConcat(data[i].tuple);
			}
			return htuple;
		}

		// Token: 0x06001DA6 RID: 7590 RVA: 0x000B4B49 File Offset: 0x000B2D49
		internal void UnpinTuple()
		{
			this.tuple.UnpinTuple();
		}

		// Token: 0x06001DA7 RID: 7591 RVA: 0x000B4B56 File Offset: 0x000B2D56
		internal void Store(IntPtr proc, int parIndex)
		{
			this.tuple.Store(proc, parIndex);
		}

		// Token: 0x06001DA8 RID: 7592 RVA: 0x000B4B65 File Offset: 0x000B2D65
		internal int Load(IntPtr proc, int parIndex, int err)
		{
			return this.tuple.Load(proc, parIndex, err);
		}

		// Token: 0x06001DA9 RID: 7593 RVA: 0x000B4B75 File Offset: 0x000B2D75
		internal int Load(IntPtr proc, int parIndex, HTupleType type, int err)
		{
			return this.tuple.Load(proc, parIndex, type, err);
		}

		/// <summary>
		///   Provides access to the internally used tuple data
		/// </summary>
		// Token: 0x1700006B RID: 107
		// (get) Token: 0x06001DAA RID: 7594 RVA: 0x000B4B87 File Offset: 0x000B2D87
		// (set) Token: 0x06001DAB RID: 7595 RVA: 0x000B4B8F File Offset: 0x000B2D8F
		public HTuple RawData
		{
			get
			{
				return this.tuple;
			}
			set
			{
				this.tuple = new HTuple(value);
			}
		}

		// Token: 0x06001DAC RID: 7596 RVA: 0x000B4B87 File Offset: 0x000B2D87
		public static implicit operator HTuple(HData data)
		{
			return data.tuple;
		}

		/// <summary>
		///   Provides access to the value at the specified index
		/// </summary>
		// Token: 0x1700006C RID: 108
		public HTupleElements this[int index]
		{
			get
			{
				return this.tuple[index];
			}
			set
			{
				this.tuple[index] = value;
			}
		}

		// Token: 0x04001145 RID: 4421
		internal HTuple tuple;
	}
}
